package simpleStructure;

public class Main {

    public static void main(String[] args) {



        ArrayQueue<Integer> arrayQueue = new ArrayQueue(16);
        LoopQueue<Integer> loopQueue = new LoopQueue<>(16);

        int opCount = 100000;
        double v = testQueue(arrayQueue, opCount);
        System.out.println(v);
        double v1 = testQueue(loopQueue, opCount);
        System.out.println(v1);


//        LoopQueue<Integer> queue = new LoopQueue<>(2);
//        for (int i = 0; i < 21; i++) {
//            queue.enqueue(i);
//            if (i%4==1){
//                queue.dequeue();
//            }
//            System.out.println(queue);
//        }


//        Array<Integer> array = new Array();
//        for (int i = 0; i < 20; i++) {
//            array.addLast(i);
//        }
//        System.out.println(array);
//        array.add(1, 100);
//        System.out.println(array);
//        array.addFirst(-1);
//        System.out.println(array);
//
//        Integer remove = array.remove(2);
//        System.out.println(array);
//
//        array.removeElement(4);
//        System.out.println(array);
//
//        array.removeFirst();
//        System.out.println(array);

    }


    private static double testQueue(Queue<Integer> queue,int opCount){
        long startTime = System.nanoTime();
        for (int i = 0; i < opCount; i++) {
            queue.enqueue(i);
        }

        for (int i = 0; i <opCount; i++) {
            queue.dequeue();
        }
        long endTime = System.nanoTime();
        double ret = (endTime - startTime) / 1000000000.0;
        return ret;
    }
}
